/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package panel;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Sistemas
 */
public class Conexion {

    private Connection con;
    private Statement sentSQL;
    private ResultSet rst;

    public Conexion()  {
        try {
            //cargar el controlador jdbc
            String controlador = "org.postgresql.Driver";
            Class.forName(controlador).newInstance();
            conectar(); //conectar con la fuente de datos
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void conectar() throws SQLException {

        String URL_bd = "jdbc:postgresql://localhost:5432/cbn";
        String usuario = "postgres";
        String contrasena = "root";
        //conexion con la bd
        con = DriverManager.getConnection(URL_bd, usuario, contrasena);
        // se crea una Statement para asi poder usar sentencias sql
        sentSQL = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

    }

    public ResultSet ConectarBD(String usuario, String pass) throws SQLException {

        rst = sentSQL.executeQuery("select * from usuario where usuario='aeroslizth' AND password='123';");
        return rst;
    }

    // metodo para ejecutar sentencia sql
    public String ejecutar(String sql) throws SQLException {
                      //executeUpdate nos sirve para hacer UPDATE, INSERT y ese tipo de sentencias que modifican la base de datos
        // no se necesita devolver algo
        sentSQL.executeUpdate(sql);

        return "";
    }

    //metodo para ejecutar consultas de sentencias sql en la base de datos
    public ResultSet Consulta(String sql) throws SQLException {

         //executeQuery nos sirve solamente para hacer consultas de la base de datos, solo acepta sentencias como SELECT
        // se necesita forzosamente devolver algo, guardar en una variable el resultado de la consulta
        rst = sentSQL.executeQuery(sql);

        return rst;
    }
}
